home *** CD-ROM | disk | FTP | other *** search
/ Everything For A Hacker / 19990506-[HACK].iso / CARDING / (W.UUE next >
Text File  |  1997-05-09  |  19KB  |  470 lines

  1. -------------------------------------------------------------------------------
  2. Area: RU.PHREAKS
  3. From: Mike Hawker                                          Date: 8 May 97 
  4. To  : lex Ershov
  5. Subj: ÆѽÑΣ«¡¡δÑ ¬ápΓ«τ¬¿
  6. -------------------------------------------------------------------------------
  7. Hi Alex!
  8.  
  9. BΓop¡¿¬ Ma⌐ 06 1997, Alex Ershov »¿ßá½ ¬ All,á ∩ ñ«íáó¿½:
  10.  AE> ê ó««ΘÑ ¬á¬ πº¡áΓ∞ Γ¿» ΓѽÑΣ«¡á/¬ápΓ«τ¬¿, ¿σ óp«ñÑ ¬á¬ ¡Ñ߬«½∞¬« ó¿ñ«ó ?
  11. M«ªÑΓ φΓ« ΓÑíÑ »«¼«ªÑΓ...
  12.  AE> é í½áú«ñáp¡«ßΓ∞ ¬¿¡π ßσѼπ/»p«úπ/«»¿ßá¡¿Ñ φ¼π½∩Γ«pá subj ¡á PIC16æ84.
  13. åñѼßß
  14.  
  15. === Cut ===
  16. ===============================================================================
  17.        What you need to know about smart-cards and electronics phonecards
  18. ===============================================================================
  19.  
  20. INTRODUCTION:
  21.  
  22. You must not  think that  the electronics  phone-cards are  completly secret
  23. things, and that  you can not read  the information that are  inside.  It is
  24. quite false, since in  fact an  electronic phone-card  does not  contain any
  25. secret  information like credit cards and an electronic phonecard is nothing
  26. else that an 256 bits EPROM, with serial output.
  27.  
  28. Besides do not think that you are going to refilled them, when you will know
  29. how  these cards works, since for that you  should reset the 256 bits of the
  30. cards by erasing the whole card.  But the chip is coated in UV opaqued resin
  31. even if sometime  you can  see it  as tranparent!   Even  if you  were smart
  32. enough  to erase the 256 bits of the  card you should program the maer area,
  33. but  these first 96 bits are writing protected by the fusang of a fuse after
  34. the card programing in factory.
  35.  
  36. Neithertheless  it can be very interesting to  stdy how these cards work, to
  37. see  how the data are maped inside or to see if there are units left inside,
  38. besides  there are a great number of  applications of these cards when there
  39. are  used, since you can use them as key to open a door, or you can also use
  40. them as key to secure a progpam, etc.
  41.  
  42.  
  43. SCHEMATICS of the chip
  44. ======================
  45.  
  46.                     .-------------------.
  47.                     |                   |
  48.                   --|> Clk              |
  49.                     | _                 |
  50.                   --| R/W               |
  51.                     |                   |
  52.                   --| Reset             |
  53.                     |                   |
  54.                   --| Fuse              |
  55.                     |                   |
  56.                   --| Vpp               |
  57.                     |                   |
  58.                     |                   |
  59.                     '-.               .-'
  60.                       |               |
  61.                     .-------------------.
  62.                     |               Out |-- serial output
  63.                     '-------------------'
  64.  
  65.  
  66. PINOUT of the connector
  67. =======================
  68.  
  69.  
  70.           AFNOR CHIP                                   ISO CHIP
  71.           ----------                                   --------
  72.  
  73.  -------------+-------------                 -------------+-------------
  74. |   8         |         4   |               |   1         |         5   |
  75. |             |             |               |             |             |
  76. +-------\     |     /-------+               +-------\     |     /-------+
  77. |   7    +----+----+    3   |               |   2    +----+    +    6   |
  78. |        |         |        |               |        |         |        |
  79. +--------|         |--------+               +--------|         |--------+
  80. |   6    |         |    2   |               |   3    |         |    7   |
  81. |        +    +----+        |               |        +----+----+        |
  82. +-------/     |     \-------+               +-------/     |     \-------+
  83. |   5         |         1   |               |   4         |         8   |
  84. |             |             |               |             |             |
  85.  -------------+-------------                 -------------+-------------
  86.  
  87.  
  88. PINOUT:    1 : Vcc = 5V        5 : Gnd
  89.            3 : Clk             7 : I/O
  90.            4 : Reset           8 : Fuse
  91.  
  92.  
  93. TAME DIAGRAMS
  94. =============
  95.  
  96. +21V                                     _____________
  97. +5V ____________________________________|             |_________________ Vpp
  98.                                         :             :
  99. +5V                  ___________________:_____________:_________________
  100. Reset
  101. 0V  ________________|                   :             :
  102.                     :                   :             :
  103. +5V     ____        :      ____         :       ______:______
  104. 0V  ___|    |_______:_____|    |________:______|      :      |__________
  105. Clock
  106.        :    :       :     :    :        :      :      :      :
  107. +5V    :    :       :     :    :        :______:______:      :           _
  108. 0V  ___:____:_______:_____:____:________|      :      |______:__________ R/W
  109.        :    :       :     :    :        :      :      :      :
  110. +5V    :    :       :_____:    :________:      :      :      :__________
  111. 0V  XXXXXXXXXXXXXXXXX_____XXXXXX________XXXXXXXXXXXXXXXXXXXXXX__________ Out
  112.        :    :       :     :    :        :<-----><---->:      :
  113.        :    :       :     :    :        :10 to   10 to       :
  114.        :    :       :     :    :        :50 ms   50ms        :
  115.         Reset        Bit 1        Bit2                           Bit 3
  116.         card        reading      reading  Bit2 writing to 1     reading
  117.  
  118.  
  119. MEMORY MAP of the french CARDS
  120. ==============================
  121.  
  122. Bytes       Bits      Binary     Hexa
  123.  
  124.                     +-----------+-----+
  125.   1        1 --> 8  |           |     |
  126.                     +-----------+-----+
  127.   2       9 --> 16  | 0000 0011 | $03 | ---> a french telecard
  128.                     +-----------+-----+
  129.   3      17 --> 24  |           |     |
  130.                     +-----------+-----+
  131.   4      25 --> 32  |           |     |
  132.                     +-----------+-----+
  133.   5      33 --> 40  |           |     |
  134.                     +-----------+-----+
  135.   6      41 --> 48  |           |     |
  136.                     +-----------+-----+
  137.   7      49 --> 56  |           |     |
  138.                     +-----------+-----+
  139.   8      57 --> 64  |           |     |
  140.                     +-----------+-----+
  141.   9      65 --> 72  |           |     |
  142.                     +-----------+-----+
  143.  10      73 --> 80  |           |     |
  144.                     +-----------+-----+
  145.  11      81 --> 88  |           |     |
  146.                     +-----------+-----+
  147.  12      33 --> 40  | 0001 0011 | $13 | ---> 120 units card
  148.                     | 0000 0110 | $06 | --->  50 units card
  149.                     | 0000 0101 | $05 | --->  40 units card
  150.                     +-----------+-----+
  151.  13-31  97 --> 248  |           |     | ---> The units area: each time a unit
  152.                     |           |     |      is used, then a bit is set to
  153. "1";
  154.                     |           |     |      Generaly the first ten units are
  155.                     |           |     |      fused in factory as test.
  156.                     |           |     |
  157.                     |           |     |
  158.                     |           |     |
  159.                     +-----------+-----+
  160.  32    249 --> 256  | 1111 1111 | $FF | ---> the card is empty
  161.                     +-----------+-----+
  162.  
  163.  
  164. MEMORY MAP of the other cards
  165. =============================
  166.  
  167. Bytes       Bits      Binary     Hexa
  168.  
  169.                     +-----------+-----+
  170.   1        1 --> 8  |           |     |
  171.                     +-----------+-----+
  172.   2       9 --> 16  | 1000 0011 | $83 | ---> a telecard
  173.                     +-----------+-----+-----------+-----+
  174. 3-4      17 --> 32  | 1000 0000 | $80 | 0001 0010 | $12 | ---> 10 units card
  175.                     |           |     | 0010 0100 | $24 | ---> 22 units card
  176.                     |           |     | 0010 0111 | $27 | ---> 25 units card
  177.                     |           |     | 0011 0010 | $32 | ---> 30 units card
  178.                     |           |     | 0101 0010 | $52 | ---> 50 units card
  179.                     |           |     | 1000 0010 | $82 | ---> 80 units card
  180.                     | 1000 0001 | $81 | 0000 0010 | $02 | ---> 100 units card
  181.                     |           |     | 0101 0010 | $52 | ---> 150 units card
  182.                     +-----------+-----+-----------+-----+
  183.   5      33 --> 40  |           |     |
  184.                     +-----------+-----+
  185.   6      41 --> 48  |           |     |
  186.                     +-----------+-----+
  187.   7      49 --> 56  |           |     |
  188.                     +-----------+-----+
  189.   8      57 --> 64  |           |     |
  190.                     +-----------+-----+
  191.   9      65 --> 72  |           |     |
  192.                     +-----------+-----+
  193.  10      73 --> 80  |           |     |
  194.                     +-----------+-----+
  195.  11      81 --> 88  |           |     |
  196.                     +-----------+-----+
  197.  12      89 --> 96  | 0011 0000 | $30 | ---> Norway
  198.                     | 0011 1100 | $3C | ---> Ireland
  199.                     | 0100 0111 | $47 | ---> Portugal
  200.                     | 0101 0101 | $55 | ---> Czech Republic
  201.                     | 0101 1111 | $5F | ---> Gabon
  202.                     | 0110 0101 | $65 | ---> Finland
  203.                     +-----------+-----+
  204.  13-31  97 --> 248  |           |     | ---> The units area: each time a unit
  205.                     |           |     |      is used, then a bit is set to
  206. "1";
  207.                     |           |     |      Generaly the first two units are
  208.                     |           |     |      fused in factory as test.
  209.                     |           |     |
  210.                     |           |     |
  211.                     +-----------+-----+
  212.  32    249 --> 256  |           |     |
  213.                     +-----------+-----+
  214.  
  215. Schematic of the reader
  216. =======================
  217.  
  218.    External 5V (Optional)
  219.  
  220. 5V o------,
  221.           |                 /             T2  PNP      d13  r7 10
  222. 0V o--,   |                /               BC 177     |\ |  _____
  223.       |   |      ,-------o/   o--*------. E      C .--| >+-[_____]--------,
  224.     __+__ |      |               |       \        /   |/ |                |
  225.     \\\\\ |    __|__ Batery      |         \    /                         |
  226.           |      -   22.5V       |       ---------                        |
  227. .......   |      |               |   _____   |   _____                    |
  228.        :  |    __+__             +--[_____]--*--[_____]--,                |
  229.    D2  :  |    \\\\\                r6 150k     r5 15k   |                |
  230. 4 o-------|---------------------------*------------------|-------------,  |
  231.        :  |                           |   r3 220k       / C            |  |
  232.    Ack :  |                           |   _____      |/    T1 - NPN    |  |
  233. 10 o------|--------.                  '--[_____]-*---|      BC107      |  |
  234.        :  |        |                      _____  |   |\                |  |
  235.        : ,-,      ,-,                 +--[_____]-'      \ E            |  |
  236.        : | |r2    | |r1               |  r4 390k         |             |  |
  237.        : | |220   | |22k            __+__              __+__           |  |
  238.        : |_|      |_|               \\\\\              \\\\\           |  |
  239.        :  |  |\ |  |                                                   |  |
  240.        :  *--| >+--|----------------*----------------------------------|--*
  241.        :  |  |/ |  |          ,-----|-----------------------------,    |  |
  242.        :  |  d1    |          |     |   ,----------,----------,   |    |  |
  243.        :  |        |          |     *---|--*  Fuse | Reset *--|---'    |  |
  244.        :  |        |          |     |   |----------|----------|        |  |
  245.    D0  :  |        |          |   ,-|---|--*   I/O | Clk   *--|---,    |  |
  246. 2 o-------|--------|----------'   | |   |----------|----------|   |    |  |
  247.        :  |        |              | '---|--*   Vpp | R/W   *--|---|----'  |
  248.   Busy :  |        |              |     |----------|----------|   |       |
  249. 11 o------|--------|--------------' ,---|--*   Gnd | 5V    *  |   |       |
  250.        :  |        |                |   '----------'-------|--'   |       |
  251.    D1  :  |        |              __+__    Chip connector  |      |       |
  252. 3 o-------|--------|--------,     \\\\\                    |      |       |
  253.        :  |        |        '------------------------------|------'       |
  254.   Str  :  |  |\ |  |                                       |              |
  255. 1 o-------*--| >+--*----*----*----*----*-------------------'              |
  256.        :   d2|/ |  |d3  |d4  |d5  |d6  |d7                                |
  257.        :          -+-  -+-  -+-  -+-  -+-                                 |
  258.        :          /_\  /_\  /_\  /_\  /_\                                 |
  259.    D3  :           |    |    |    |    |   |\ | d8                        |
  260. 5 o----------------*----|----|----|----|---| >+-------*-------------------'
  261.        :                |    |    |    |   |/ |       |
  262.        :                |    |    |    |              |
  263.    D4  :                |    |    |    |   |\ | d9    |
  264. 6 o---------------------*----|----|----|---| >+-------*
  265.        :                     |    |    |   |/ |       |
  266.        :                     |    |    |              |
  267.    D5  :                     |    |    |   |\ | d10   |
  268. 7 o--------------------------*----|----|---| >+-------*
  269.        :                          |    |   |/ |       |
  270.        :                          |    |              |
  271.    D6  :                          |    |   |\ | d11   |
  272. 8 o-------------------------------*----|---| >+-------*
  273.        :                               |   |/ |       |
  274.        :                               |              |
  275.    D7  :                               |   |\ | d12   |
  276. 9 o------------------------------------*---| >+-------'
  277.        :                                   |/ |
  278.        :
  279.        :
  280. 25 o------.
  281.        :  |
  282. .......:  |                                 d1 to d13: 1N4148
  283.         __+__
  284.         \\\\\
  285.  
  286. Centronic port
  287.  
  288.  
  289. The program
  290. ===========
  291.  
  292. The following program enable to use the reader on your PC.
  293.  
  294. uses crt,dos;
  295.  
  296. type string8=string[8];
  297.  
  298. var reg:registers;
  299.     i,j:integer;
  300.     bb:array[1..32] of string8;
  301.     bh:array[1..32] of byte;
  302.     l:array[1..256] of boolean;
  303.     car:char;
  304.  
  305. ;-----------------------------------------------------------
  306.  
  307. procedure writeln_binaire(w:byte);
  308.  
  309. begin if (w and $80)=$80 then write('1') else write('0');
  310.   if (w ano $40)=$40 then write('1') else write('0');
  311.   if (w and $20)=$20 then write('1') else write('0');
  312.   if (w and $10)=$10 then write('1') else write('0');
  313.   if (w and $08)=$08 then write('1') else write('0');
  314.   if (w and $04)=$04 then write('1') else write('0');
  315.   if (w and $02)=$02 then write('1') else write('0');
  316.   if (w and $01)=$01 then write('1') else write('0');
  317.   writeln;
  318. end;
  319.  
  320. ;-----------------------------------------------------------
  321.  
  322. procedure send(b:byte);
  323.  
  324. begin reg.AH:=$00;
  325.   reg.AL:=b;
  326.   reg.DX:=0;
  327.   intr($17,reg);
  328. end;
  329.  
  330. ;-----------------------------------------------------------
  331.  
  332. function get:byte;
  333.  
  334. begin reg.AH:=$02;
  335.   reg.DX:=0;
  336.   intr($17,reg);
  337.   get:=reg.AH;
  338. end;
  339.  
  340. ;-----------------------------------------------------------
  341.  
  342. function unites:byte;
  343.  
  344. var u,idx:integer;
  345.  
  346. begin u:=0;
  347.   idx:=97;
  348.   while (l[idx] and (idx<257)) do
  349.   begin inc(u);
  350.     inc(idx);
  351.   end;
  352.   unites:=u;
  353. end;
  354.  
  355. ;-----------------------------------------------------------
  356.  
  357. procedure type_carte;
  358.  
  359. begin case bh[2] of
  360.   $03: begin write('Telecard - France - ');
  361.     case bh[12] of
  362.      $13: write('120 Units - ',unites-130,' Units left');
  363.      $06: write('50 Units - ',unites-60,' Units left');
  364.      $15: write('40 Units - ',unites-40,' Units left');
  365.     end;
  366.   end;
  367.   $83:begin case bh[12] of
  368.     $30: write('Telecard - Norway - ');
  369.     $3C: write('Telecard - Ireland - ');
  370.     $55: write('Telecard - Czech Republic - ');
  371.     $65: write('Telecard - Finland - ');
  372.   end;
  373.   if bh[12] in [$30,$3C,$55,$65] then
  374.   begin case ((bh[3] and $0F)*$100+bh[4]) of
  375.     $012: write ('10 Units - ',unites-12,' Units left');
  376.     $024: write ('22 Units - ',unites-24,' Units left');
  377.     $027: write ('25 Units - ',unites-27,' Units left');
  378.     $032: write ('30 Units - ',unites-32,' Units left');
  379.     $052: write ('50 Units - ',unites-52,' Units left');
  380.     $070: write ('70 Units - ',unites-70,' Units left');
  381.     $082: write ('80 Units - ',unites-82,' Units left');
  382.     $102: write ('100 Units - ',unates-102,' Units left');
  383.     $152: write ('150 Units -  ',unites-152,' Units left')
  384. ;
  385.         end;
  386.       end;
  387.     write(' - N0 ',bh[5]*$100+bh[6]);
  388.     end;
  389.   end;
  390. end;
  391.  
  392. ;-----------------------------------------------------------
  393.  
  394. procedure attente;
  395.  
  396.   begin send($00);
  397.     [write('Entrer une carte et presser une touche ...');]
  398.     repeat until keypressed;
  399.     writeln;
  400.   end;
  401.  
  402. ;-----------------------------------------------------------
  403.  
  404. function value(s:string8):byte;
  405.  
  406.   var b:byte;
  407.  
  408.   begin b:=0;
  409.     if s[8]='1' then b:=b+$01;
  410.     if s[7]='1' then b:=b+$02;
  411.     if s[6]='1' then b:=b+$04;
  412.     if s[5]='1' then b:=b+$08;
  413.     if s[4]='1' then b:=b+$10;
  414.     if s[3]='1' then b:=b+$20;
  415.     if s[2]='1' then b:=b+$40;
  416.     if s[1]='1' then b:=b+$80;
  417.     value:=b;
  418.   end;
  419.  
  420. ;-----------------------------------------------------------
  421.  
  422. procedure write_hexa(s:string);
  423.  
  424.   var i:integer;
  425.  
  426.   begin if s='0000' then write('0') else
  427.     if s='0001' then write('1') else
  428.     if s='0010' then write('2') else
  429.     if s='0011' then write('3') else
  430.     if s='0100' then write('4') else
  431.     if s='0101' then write('5') else
  432.     if s='0110' then write('6') else
  433.     if s='0111' then write('7') else
  434.     if s='1000' then write('8') else
  435.     if s='1001' then write('9') else
  436.     if s='1010' then write('A') else
  437.     if s='1011' then write('B') else
  438.     if s='1100' then write('C') else
  439.     if s='1101' then write('D') else
  440.     if s='1110' then write('E) else
  441.     if s='1111' then write('F');
  442.   end;
  443.  
  444. ;-----------------------------------------------------------
  445.  
  446. procedure lecture;
  447.  
  448.   var i,j,k:integer;
  449.  
  450.   begin send($FA);
  451.     send($F8);
  452.     k:=1;
  453.     for i:=1 to 32 do
  454.     begin bb[i]:='';
  455.       for j:=1 to 8 do
  456.       begin seno($F9);
  457.         l[k]:=not((get and $08)=$08);
  458.         if l[k] then insert('1',bb[i],j) else insert('0',bb[i],j);
  459.         send($FB);
  460.         inc(k);
  461.       end;
  462.     end;
  463. end.
  464. === Cut ===
  465.        ___ _____
  466.        ├ -▄┌┌──╜       BEST REGARDS
  467.           █╢                                    -=HAWKER=-
  468.  
  469.  
  470.